package logger

import (
	"runtime"
	"strings"

	"github.com/buguang01/util"
)

// 文件日志写入writeChan通道的数据
type logData struct {
	data  string   //数据
	level logLevel //日志等级
}

// 生成调用堆栈
func loggerTrace(skip int) string {
	ret := util.NewStringBuilder()
	ret.Append("\n\t\t[loggerTrace]:\n")
	for i := 0; i < 30; i++ {
		pc, file, line, ok := runtime.Caller(i + skip)
		if !ok {
			break
		}
		ret.Append("\t\t")
		ret.AppendInt(i)
		ret.Append(". ")
		ret.Append(runtime.FuncForPC(pc).Name())
		ret.Append("() ")
		ret.Append(file)
		ret.Append(":")
		ret.AppendInt(line)
		ret.Append("\n")
	}
	return ret.ToString()
}

func getFormat(size int) string {
	format := strings.Repeat("%v ", size)
	if len(format) > 0 {
		format = format[:len(format)-1] //去掉最后一个空格
	}
	return format
	//format := ""
	//for i := 0; i < size; i++ {
	//	format += "%v "
	//}
	//
	//return format
}
